home *** CD-ROM | disk | FTP | other *** search
/ Eagles Nest BBS 8 / Eagles_Nest_Mac_Collection_Disc_8.TOAST / Developer Tools⁄Additions / InsideBa1994 / InsideBasic-94 / IB 94 / Simple DB / wData.FLTR < prev    next >
Text File  |  1993-10-24  |  4KB  |  178 lines

  1. '===============================================================================
  2. '=                     Copyright 1992 Staz™ Software, Inc.                     =
  3. '=                             All rights reserved                             =
  4. '=                            "Project.INCL" from PG:PRO                       =
  5. '===============================================================================
  6. INCLUDE FILE _aplIncl
  7. COMPILE 0,_MacsbugLabels_strResource_caseInsensitive'set by PG:PRO
  8. '
  9. GLOBALS "PG PRO.GLBL"
  10. GLOBALS "Simple DB.GLBL"
  11. END GLOBALS
  12. '===============================================================================
  13. GOTO "wData"
  14. '===============================================================================
  15. INCLUDE "@Header.INCL"
  16.  
  17. LOCAL FN clearData
  18.   DEF BLOCKFILL(@gClients,_gClientSz,0)
  19.   FOR x = 0 TO _maxClients
  20.     DEF BLOCKFILL(@gClientData(x),_gClientSz,0)
  21.   NEXT
  22.   gDirty = _false
  23. END FN
  24.  
  25. LOCAL FN newFile
  26.   FN clearData
  27.   gSaveName$ = "untitled"
  28.   FN pGbuild(_dataWnd)
  29.   gCurrRecord = 1
  30. END FN
  31.  
  32. LOCAL FN showRecord
  33.   EDIT$(_lastNameFld ) = gClientData.gClientLName$(gCurrRecord)
  34.   EDIT$(_firstNameFld) = gClientData.gClientFName$(gCurrRecord)
  35.   EDIT$(_phoneFld    ) = gClientData.gClientPhone$(gCurrRecord)
  36.   EDIT FIELD _lastNameFld
  37.   gRecDirty = _false
  38.   t$ = "Record" +STR$(gCurrRecord)
  39.   CALL SETWTITLE(WINDOW(_wndpointer),t$)
  40. END FN
  41.  
  42. LOCAL FN readData
  43.   FN newFile
  44.   gSaveName$ = gFileName$
  45.   gSaveVol   = gFileVol
  46.   OPEN "R",#1,gSaveName$,_gClientSz,gSaveVol
  47.   recCount = LOF(1)
  48.   FOR theRec = 1 TO recCount
  49.     READ FILE #1,@gClientData(theRec),_gClientSz
  50.   NEXT
  51.   CLOSE #1
  52.   gDirty = _false
  53.   FN showRecord
  54. END FN
  55.  
  56. LOCAL FN writeData
  57.   OPEN "R",#1,gSaveName$,_gClientSz,gSaveVol
  58.   CLOSE #1
  59.   KILL gSaveName$,gSaveVol
  60.   DEF OPEN = "FONEHOME"
  61.   OPEN "R",#1,gSaveName$,_gClientSz,gSaveVol
  62.   FOR theRec = 1 TO _maxClients
  63.     LONG IF LEN(gClientData.gClientLName$(theRec))
  64.       WRITE FILE #1,@gClientData(theRec),_gClientSz
  65.     END IF
  66.   NEXT theRec
  67.   CLOSE #1
  68.   REM PG clears the gDirty flag!
  69. END FN
  70.  
  71. LOCAL FN saveRecord
  72.   gClientData.gClientLName$(gCurrRecord) = EDIT$(_lastNameFld )
  73.   gClientData.gClientFName$(gCurrRecord) = EDIT$(_firstNameFld)
  74.   gClientData.gClientPhone$(gCurrRecord) = EDIT$(_phoneFld  )
  75.   gRecDirty = _false
  76.   gDirty    = _ztrue
  77. END FN
  78.  
  79. LOCAL FN nextRecord
  80.   INC(gCurrRecord)
  81.   FN showRecord
  82. END FN
  83.  
  84. LOCAL FN previousRecord
  85.   DEC(gCurrRecord)
  86.   FN showRecord
  87. END FN
  88.  
  89. LOCAL FN dataNulls
  90.   LONG IF gWhichClass = _dataWnd
  91.     BUTTON _previousBtn,1+(gCurrRecord = 1)
  92.     'LONG IF gCurrRecord = 1
  93.     'BUTTON _previousBtn,_disable
  94.     'XELSE
  95.     'BUTTON _previousBtn,_enable
  96.     'END IF
  97.     LONG IF gCurrRecord = _maxClients
  98.       BUTTON _NextBtn,_disable
  99.     XELSE
  100.       BUTTON _NextBtn,_enable
  101.     END IF
  102.     LONG IF gRecDirty
  103.       BUTTON _saveBtn,_enable
  104.     XELSE
  105.       BUTTON _saveBtn,_disable
  106.     END IF
  107.   END IF
  108. END FN
  109.  
  110. LOCAL FN dataMenu
  111.   SELECT gItemName$
  112.     CASE "New" :FN newFile
  113.   END SELECT
  114. END FN
  115.  
  116. LOCAL FN dataButtons
  117.   LONG IF gWhichClass = _dataWnd
  118.     SELECT gWhichButton
  119.       CASE _previousBtn:FN previousRecord
  120.       CASE _NextBtn    :FN nextRecord
  121.       CASE _saveBtn    :FN saveRecord
  122.     END SELECT
  123.   END IF
  124. END FN
  125.  
  126. LOCAL FN dataMain
  127.   SELECT gSubAction
  128.     CASE _mainOpen:
  129.       LONG IF WINDOW(-_dataWnd)
  130.         BEEP
  131.       XELSE
  132.         FN readData
  133.       END IF
  134.     CASE _mainSave:FN writeData
  135.     CASE _mainStart:gOpenType$ = gOpenType$ + "FONE"
  136.   END SELECT
  137. END FN
  138.  
  139. LOCAL FN dataOther
  140.   SELECT gSubAction
  141.     CASE _otherNullEvent
  142.       FN dataNulls
  143.     CASE _otherUser
  144.       LONG IF gDialogValue = _showNewRec
  145.         WINDOW _dataWnd
  146.         FN showRecord
  147.       END IF
  148.     CASE _otherBeforeMenu
  149.       LONG IF WINDOW(-_dataWnd)
  150.         MENU _fileMenu,_newItem,_disable
  151.         MENU _fileMenu,_openItem,_disable
  152.       XELSE
  153.         MENU _fileMenu,_newItem,_enable
  154.         MENU _fileMenu,_openItem,_enable
  155.       END IF
  156.   END SELECT
  157. END FN
  158.  
  159. LOCAL FN dataFields
  160.   LONG IF gSubAction = _fieldKeyPressed
  161.     LONG IF gWhichClass = _dataWnd
  162.       gRecDirty = _zTrue
  163.     END IF
  164.   END IF
  165. END FN
  166.  
  167. '===============================================================================
  168. "wData"
  169. '===============================================================================
  170. SELECT gAction
  171.   CASE _menuAction   : FN dataMenu
  172.   CASE _buttonAction : FN dataButtons
  173.   CASE _mainAction   : FN dataMain
  174.   CASE _otherAction  : FN dataOther
  175.   CASE _fieldAction  : FN dataFields
  176. END SELECT
  177.  
  178.